package cn.patient.pp.module.patients.service;

import javax.validation.*;

import cn.patient.pp.framework.common.pojo.CommonResult;
import cn.patient.pp.module.patients.controller.admin.vo.importExecl.FollowUpExcelVO;
import cn.patient.pp.module.patients.controller.admin.vo.importExecl.ImportRespVO;
import cn.patient.pp.module.patients.dal.dataobject.patients.FollowUpDO;
import cn.patient.pp.framework.common.pojo.PageResult;
import cn.patient.pp.module.patients.controller.admin.vo.FollowUpPageReqVO;
import cn.patient.pp.module.patients.controller.admin.vo.FollowUpSaveReqVO;

import java.util.List;

/**
 * 随访列表 Service 接口
 *
 * @author sailv
 */
public interface FollowUpService {

    /**
     * 创建随访列表
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Integer createUp(@Valid FollowUpSaveReqVO createReqVO);

    /**
     * 更新随访列表
     *
     * @param updateReqVO 更新信息
     */
    void updateUp(@Valid FollowUpSaveReqVO updateReqVO);

    /**
     * 删除随访列表
     *
     * @param id 编号
     */
    void deleteUp(Integer id);

    /**
     * 获得随访列表
     *
     * @param id 编号
     * @return 随访列表
     */
    FollowUpDO getUp(Integer id);

    /**
     * 获得随访列表分页
     *
     * @param pageReqVO 分页查询
     * @return 随访列表分页
     */
    PageResult<FollowUpDO> getUpPage(FollowUpPageReqVO pageReqVO);

    /**
     * 导入随访列表
     *
     * @param list          随访列表
     * @return 是否成功
     */
    ImportRespVO importExcel(List<FollowUpExcelVO> list) throws InterruptedException;
}